import os
# os.system(cmd)模块中使用linux指令

# 创建文件、打开文件、文件中写入内容、读取文件

"""
文本文件：存储的是普通"字符"文本,默认为unicode字符集(两个字节表示一个
字符,65535),可以用记事本打开，但是像word编辑的文件不是文本文件。

二进制文件：把数据内容用"字节"进行存储，无法用记事本打开，必须使
用专用软件解码。常见的有MP4视频文件、MP3音频文件、JPG图片、doc文档

文件操作相关模块：


mode参数选项：
    r:以只读模式打开文件。文件的指针将会放在文件的开头
    rb:以二进制格式打开文件，并且采用只读模式。文件的指针将会放在文件的开头。一般用于非文本文件，如图片、声音等
    r+:打开文件后，可以读取文件内容，也可以写入新的内容覆盖原有内容（从文件开头进行覆盖）
    rb+:以二进制格式打开文件，并且采用读写模式。文件的指针将会放在文件的开头。一般用于非文本文件，如图片、声音等
    w:以只写模式打开文件
    wb:以二进制格式打开文件，并且采用只写模式。一般用于非文本文件，如图片、声音等
    w+:打开文件后，先清空原有内容，使其变为一个空的文件，对这个空文件有读写权限
    wb+:以二进制格式打开文件，并且采用读写模式。一般用于非文本文件，如图片、声音等
    a:以追加模式打开一个文件。如果该文件已经存在，文件指针将放在文件的末尾（即新内容会被写入到已有内容之后），否则，创建新文件用于写入
    ab:以二进制格式打开文件，并且采用追加模式。如果该文件已经存在，文件指针将放在文件的末尾（即新内容会被写入到已有内容之后），否则，创建新文件用于写入
    a+:以读写模式打开文件。如果该文件已经存在，文件指针将放在文件的末尾（即新内容会被写入到已有内容之后），否则，创建新文件用于读写
    ab+:以二进制格式打开文件，并且采用追加模式。如果该文件已经存在，文件指针将放在文件的末尾（即新内容会被写入到已有内容之后），否则，创建新文件用于读写

read():读取文件中的所有内容，保留原格式
readline():每次读取文件中的一行
readlines():读取列表中内容，以列表形式返回读取到文件内容
write():在文件中写入内容
writelines():

| 姓名 | 年龄 | 工作         | 薪水  |
| ---- | ---- | ------------ | ----- |
| 高奇 | 18   | 工程师       | 30000 |
| 张三 | 22   | 测试工程师   | 10000 |
| 李四 | 16   | 人工智能开发 | 40000 |
"""

pathfile = r'E:/test/aa.txt'
# mode = 'r'
# mode = 'r+'
# mode = 'w+'
mode = 'a+'

# 指定的pathfile文件不存在就会创建文件
with open(pathfile,mode=mode,encoding='utf8') as f:
    f.write('hello word\n')
    
    res = f.readlines()
    print(res)
    f.flush()

# 移动、复制文件



# 重命名文件


# 批量修改文件名


# 读取文件夹中的文件，并进行修改文件中正则匹配的内容